import { defineStore } from 'pinia'
import { ref } from 'vue'
// 引入登录接口
import { login } from '@/apis/user'
// 引入cartStore
import { useCartStore } from './cart'
// 引入合并购物车数据的接口
import { mergeCartApi } from '@/apis/cart'


export const userStoreInfo = defineStore('user', () => {
    const cartStore = useCartStore()

    // 登录之后获取的用户数据
    const userInfo = ref({})
    // 登录方法
    const getUserInfo = async ({ account, password }) => {
        const res = await login({ account, password })
        userInfo.value = res.data.result
        // 登录之后合并用户已经添加到购物车的列表数据
        await mergeCartApi(cartStore.cartList.map(item => {
            return {
                skuId: item.skuId,
                selected: item.selected,
                count: item.count
            }
        }))
        cartStore.updataNewCartList()
    }
    // 用户点击退出登录时清除所保存的数据
    const clearUserInfo = () => {
        userInfo.value = {}
        // 清空保存在本地数据
        cartStore.clearCart()
    }
    return {
        userInfo,
        getUserInfo,
        clearUserInfo
    }
}, {
    // 开启pinia中数据持久化存储 会优先从浏览器的本地存储获取数据
    persist: true
})